namespace Core.Implementation
{
	using NHibernate;
	using NHibernate.Linq;

	internal abstract class NHibernateRepository<TEntity>
	{
		protected NHibernateRepository(ISession session)
		{
			this.Session = session;
		}

		public ISession Session
		{
			get;
			private set;
		}

		protected INHibernateQueryable<TEntity> Query()
		{
			return this.Session.Linq<TEntity>();
		}
	}
}